package com.hnkywl.sts.service.zjgl;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.hnkywl.sts.dao.htgl.HtDao;
import com.hnkywl.sts.dao.zjgl.YypfDao;
import com.hnkywl.sts.entity.htgl.Cght;
import com.hnkywl.sts.entity.htgl.Ht;
import com.hnkywl.sts.entity.zjgl.Yypf;
import com.hnkywl.sts.service.sys.YgService;
import net.ruixin.orm.hibernate.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;
import java.util.Map;

/**
 * 说明：
 * 包:        com.hnkywl.sts.service.zjgl
 * 类描述:   异议赔付服务类
 * 修改备注: [说明本次修改内容]
 * 版本:        [v1.0]
 */
@Service
public class YypfService {
    private YypfDao yypfDao;
    private HtDao htDao;
    /**
     * 查询所有异议赔付信息
     *
     * @param htbm
     * @param pageNo
     * @param rowsSize
     * @return
     */
    @Transactional
    public String findAllYypf(String htbm,int pageNo, int rowsSize) {
        Page<Map> page = yypfDao.findAllYype(htbm,pageNo, rowsSize);
        Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
        String json = gson.toJson(page.getResult());
        return "{\"total\":" + page.getTotalCount() + ",\"rows\":" + json + "}";
    }

    /**
     * 根据id查询一条数据的详细
     *
     * @param yypfId
     * @return
     */
    @Transactional
    public Yypf findYypfDetail(Long yypfId) {
        return yypfDao.get(yypfId);
    }

    /**
     * 添加一条异议赔付记录
     *
     * @param yypf
     */
    @Transactional
    public void addYypf(Yypf yypf){
        yypf.setDateCreated(new Date());
        yypf.setCreateUser(YgService.getCurrentYg());
        yypf.setCreateOrgan(YgService.getCurrentYg().getZggs());
        yypf.setCreateDepartment(YgService.getCurrentYg().getZgjg());
        yypf.setLastUpdated(new Date());
        yypf.setSyzt(0);
        Ht ht = this.htDao.get(yypf.getHt().getId());
        yypf.setGsjg(ht.getLj().getXy().get(0));
        yypf.setBz(yypf.getBz());
        yypf.setYypfje(yypf.getYypfje());
        this.yypfDao.save(yypf);
    }

    /**
     * 修改异议赔付
     * @param yypf
     */
    @Transactional
    public void updateYypf(Yypf yypf,Long yypfId) {
        Yypf yypf1 = yypfDao.get(yypfId);
        yypf1.setLastUpdated(new Date());
        yypf1.setBz(yypf.getBz());
        yypf1.setYypfje(yypf.getYypfje());
        yypf1.setHt(yypf.getHt());
        this.yypfDao.save(yypf1 );
    }

    /**
     * 删除
     * @param yypfId
     */
    @Transactional
    public void delYypf(Long yypfId){
        Yypf yypf1 = yypfDao.get(yypfId);
        yypf1.setDeleted(1);
        this.yypfDao.save(yypf1);
    }

    /**
     * 查询下拉合同列表
     * @param pageNo
     * @param rows
     * @return
     */
    public String findXlht(int pageNo, int rows) {
        Page<Cght> htPage = this.yypfDao.findXlht(pageNo, rows);
        Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
        String json = gson.toJson(htPage.getResult());
        return "{\"total\":" + htPage.getTotalCount() + ",\"rows\":" + json + "}";
    }

    @Autowired
    public void setYypfDao(YypfDao yypfDao) {
        this.yypfDao = yypfDao;
    }

    @Autowired
    public void setHtDao(HtDao htDao) {
        this.htDao = htDao;
    }
}
